package com.xique.door.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.door.bean.domain.BaseUser;
import com.xique.door.bean.domain.User;


/**
 * @author caogq
 */
public interface IUserAndBaseUserBizService {

    /**
     * 项目用户没有baseUserId时，绑定C端用户（新增绑定或者查询已有用户绑定）
     * @param baseUser
     * @return
     */
    BaseUser userAddOrGetBaseUser(BaseUser baseUser, String orign);

    /**
     * 添加用户，处理user和baseUser
     * @param user
     * @param orign
     * @return
     */
    AjaxResult addUser(User user, String orign);


    /**
     * 编辑用户，处理user和baseUser
     * @param user
     * @param orign
     * @return
     */
    AjaxResult updateUser(User user, String orign);

    /**
     * 校验由调用方处理，直接返回处理后的User
     * @param user
     * @param orign
     * @return
     */
    User addUserNoCheck(User user, String orign);

    /**
     * 编辑用户，处理user和baseUser，校验由调用方处理
     * @param user  项目用户
     * @param origin 来源备注
     * @param baseUserId 项目用的绑定的C端用户id（传参则不会二次查询项目用户）
     * @param needJudgePhoneChange 是否需要判断手机号变更的情况
     * @return
     */
    User updateUserNoCheck(User user, String origin, Long baseUserId,Boolean needJudgePhoneChange);
}
